Міністерство освіти України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Розрахункова робота
з курсу
«Об'єктно-орієнтоване програмування»
Завдання
Створити проект Delphi для побудови рухомих графічних зображень. Основні елементи зображення розглядати як об’єкти класів, які необхідно ввести та описати. Рух або зміну об’єктів реалізувати за допомогою відповідних методів класів. Рух більшості об’єктів здійснюється зліва направо, а тоді повторюється або змінює напрямок. Програма має реагувати на керуючі клавіші: 1) для видачі підказки; 2) для зупинки (паузи) та продовження руху; 3) старт із початкового стану; 4) збільшення-зменшення об’єкта; 5) уповільнення-прискорення руху; 6) завершення програми.
Примітка. Опис класів та реалізацію методів виконати в окремому програмному модулі.
Індивідуальне завдання
Стрибок із трампліна.
Текст програми:
Lb3.pas
unit lb3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Car;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
car1:TCar;
implementation
uses lb3_1;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
n, x, y,g1,yp:integer;
Fi:real;
t,r,g,yzz: double;
xr,yr:integer;
xz,yz,k: integer;
m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12:integer;
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12:integer;
k1,k2,k3,k4,l1,l2,l3,l4:integer;
x0,y0:integer;
mn1,mn2,mn3,mn4,mn5,mn6,mn7,mn8,mn9,mn10,mn11,mn12:integer;
nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nn11,nn12:integer;
kn1,kn2,kn3,kn4,ln1,ln2,ln3,ln4:integer;
tk,yk:integer;
begin
with Canvas do { працюємо з властивістю Canvas класу TForm } begin
//ochushchennya
PatBlt(Form1.Canvas.Handle, 0, 0,
Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
Pen.Color := clBlack; { створити синє перо }
Brush.Color := clBlack; { створити жовтий пензель }
car1:=Tcar.Create;
car1.carbuild(Form1.Canvas);
car1.track(Form1.Canvas);
car1.move(Form1.Canvas);
// tramplin
//mashuna
//ruh
//do trampliny
end;
end;
end.
Car.pas
unit Car;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls;
type Tcar = class(TObject)
n, x, y,g1,yp:integer;
Fi:real;
t,r,g,yzz: double;
xr,yr:integer;
xz,yz,k: integer;
m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12:integer;
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12:integer;
k1,k2,k3,k4,l1,l2,l3,l4:integer;
x0,y0:integer;
mn1,mn2,mn3,mn4,mn5,mn6,mn7,mn8,mn9,mn10,mn11,mn12:integer;
nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nn11,nn12:integer;
kn1,kn2,kn3,kn4,ln1,ln2,ln3,ln4:integer;
tk,yk:integer;
procedure track(c:TCanvas);
procedure carbuild(c:TCanvas);
procedure move(c:TCanvas);
end;
implementation
procedure TCar.track(c:Tcanvas);
begin
with c do begin
Pen.Color := clBlack;
moveto(0,400);
lineto(330,400);
lineto(520,335);
lineto(520,400);
lineto(1100,400);
end;
end;
procedure Tcar.carbuild(c:Tcanvas);
begin
with c do begin
xr:=0;
yr:=0;
Pen.Color := clred;
Ellipse(10+xr,380+yr,30+xr,400+yr);
Ellipse(60+xr,380+yr,80+xr,400+yr);
moveto(30+xr,390+yr);
lineto(60+xr,390+yr);
moveto(80+xr,390+yr);
lineto(90+xr,390+yr);
lineto(90+xr,370+yr);
lineto(65+xr,370+yr);
lineto(55+xr,360+yr);
lineto(35+xr,360+yr);
lineto(20+xr,370+yr);
lineto(10+xr,370+yr);
lineto(10+xr,390+yr);
Pen.Color := clred;
end;
end;
procedure Tcar.move(c:Tcanvas);
begin
with c do begin
while (xr<260) do
begin
Sleep(1);
//sturannya mashunu
Pen.Color := clwhite;
Brush.Color := clwhite;
Ellipse(10+xr,380+yr,30+xr,400+yr);
Ellipse(60+xr,380+yr,80+xr,400+yr);
moveto(3...